Creación de una cita


Introducción

Con este método creamos una cita en el CRM.


Para este método debemos agregar un token en Headers de tipo Authorization con el token necesario.

{success} POST: /api/public/appointments


use GuzzleHttp\Client;

$client = new Client();

$res = $client->request("POST", "{$endpoint}/api/public/appointments", [
    "form_params" => [
        {
            "type": 14, //Tipo de la cita
            "profile": {
                "code": 4 // Sino se agrega profile->code se toma el usuario de la sesión
            },
            "invitedProfiles": [], // [2,3]
            "startDate": "2024-08-15",
            "startHour": "06:00",
            "endHour": "13:00",
            "comment": "Cita para enseñar apto",
            "contact": {
                "code": 5
            },
            "properties": [
                122 //codpro
            ],
            "address": "Carrera 59 B # 81 -30"
        }
    ]
]);

$appointment = json_decode($res->getBody(), true);

return $appointment;

Respuesta Correcta

{
    "code": 200,
    "message": "Cita guardada correctamente",
    "data": {
        "id": 249,
        "code": 212,
        "reschedule_code": null,
        "reschedule_id": null,
        "address": "Carrera 59 B # 81 -30",
        "longitude": null,
        "latitude": null,
        "title": "06:00 - AP - Toma de fotos - Carrera 59 B # 81 -30",
        "comment": "Cita para enseñar apto",
        "date": "2024-08-15",
        "init_time": "06:00:00",
        "end_time": "13:00:00",
        "verified_date": null,
        "verify_profile": null,
        "contact": null,
        "properties": [
            {
                "id": 253,
                "biz": null,
                "group": null,
                "property": "122",
            }
        ],
        "profiles": [
            {
                "id": 441,
                "role": {
                    "id": 1,
                    "name": "Anfitrión"
                },
                "profile": {
                    "code": 6,
                    "full_name": "Agente prueba cita",
                    "picture_url": "https://foto-agente.la",
                    "email": "[email protected]",
                    "color": "/docs/1.0/appointments/create#3FFF33",
                    "phones": [
                        {
                            "phone": "3115893698",
                            "phone_type_id": 2,
                            "phone_type": "Celular",
                            "phone_indicative_id": 1,
                            "phone_indicative": "+57"
                        }
                    ]
                }
            }
        ],
        "results": {
            "id": 202,
            "latitude": null,
            "longitude": null,
            "comment": "",
            "result": {
                "id": 1,
                "name": "Pendiente",
                "status": {
                    "id": 1,
                    "name": "Pendiente"
                },
                "appointment_type": null
            }
        },
        "type": {
            "id": 35,
            "name": "Toma de fotos",
        },
        "status": {
            "id": 1,
            "name": "Pendiente"
        }
    }
}

Respuestas fallidas

{
    "code": 401,
    "message": "Existe una cita para este perfil en este rango de tiempo (nota: también podría ser invitado de otra cita).",
    "errors": {
        "appointment": [
            "Existe una cita para este perfil en este rango de tiempo (nota: también podría ser invitado de otra cita)."
        ]
    }
}
{
    "code": 401,
    "message": "Falta agregar inmuebles, en caso de no ver el campo es debido a que el contacto no tiene vinculados inmuebles.",
    "errors": {
        "appointment": [
            "Falta agregar inmuebles, en caso de no ver el campo es debido a que el contacto no tiene vinculados inmuebles."
        ]
    }
}
{
    "code": 401,
    "message": "La hora de finalización debe ser mayor a la de inicio",
    "errors": {
        "appointment": [
            "La hora de finalización debe ser mayor a la de inicio"
        ]
    }
}
{
    "code": 401,
    "message": "Este perfil está bloqueado para agregar citas",
    "errors": {
        "appointment": [
            "Este perfil está bloqueado para agregar citas"
        ]
    }
}

{
    "code": 401,
    "message": "No tiene permisos para crear citas a diferentes perfiles",
    "errors": {
        "appointment": [
            "No tiene permisos para crear citas a diferentes perfiles"
        ]
    }
}